データで親子関係を示すレポートを作成するために、再帰型階層とともにLevel関数を使用できます。このチュートリアルでは、再帰型階層の作成方法を紹介します。
このトピックでは、以下のタスクを行います。
- Visual StudioプロジェクトにActiveReportを追加する
- レポートをデータソースに接続する
- パラメータ値のためにデータセットを作成する
- レポートのパラメータを追加する
- レポートにデータセットを追加する
- レポートのレイアウトを作成する
- 再帰型階層を設定する
- Level関数を使用し、階層を表示する
- テキストボックスのBackgroundColorプロパティでテーマとLevel関数を使用する
- レポートを表示する
|
メモ:
- このチュートリアルでは、Reelsデータベース(Reels.mdb)のStoreテーブルを使用しています。Reelsデータベース(..\ActiveReportsNET9\Data\Reels.mdb)へのアクセス権限が必要です。
- このチュートリアルではページレポートを使用していますが、RDLレポートを使用した場合も同様の手順で作成することが可能です。
|
チュートリアルを完了すると、次のようなレポートが作成されます。
設計時のレイアウト
実行時のレイアウト
Visual StudioプロジェクトにActiveReportを追加する
- Visual Studioで新規プロジェクトを開きます。
- [プロジェクト]メニューから[新しい項目の追加]を選択します。
- [新しい項目の追加]ダイアログで[ActiveReports 9.0Jページレポート]を選択し、ファイル名を「rptRecursiveHierarchy」に変更します。
- [追加]ボタンをクリックします。
詳細は、「プロジェクトにレポートを追加する」を参照してくだざい。
レポートをデータソースに接続する
- [レポートエクスプローラ]では、データソースのノードを右クリックして、[データソースの追加]のオプションを選択するか、[追加]ボタンから[データソース]を選択します。
- [レポートデータソース]ダイアログでは、[全般]ページを選択し、名前を「ReportData」に変更します。
- このページでは、Reelsデータベースに接続します。詳細は、「データソースとの接続」を参照してくだざい。
パラメータ値のためにデータセットを作成する
- [レポートエクスプローラ]では、データソースのノードを右クリックし、[データセットの追加]のオプションを選択するか、[追加]ボタンから[データセット]を選択します。
- [データセット]ダイアログでは、[全般]ページを選択し、[名前]フィールドに「Stores」を入力します。この名前は[レポートエクスプローラ]で、データソースの子ノードとして表示されます。
-
[データセット]ダイアログの[クエリ]ページで、[クエリ]フィールドに次のSQLクエリを入力します。
SQLクエリ |
コードのコピー
|
SELECT StoreID FROM Store
|
- クエリボックスの横にある[データセットの検証]アイコンをクリックし、クエリを検証します。
- [OK]をクリックしてダイアログを閉じます。データセットとクエリフィールドは、レポートエクスプローラのノードとして表示されます。
レポートのパラメータを追加する
- [レポートエクスプローラ]では、データソースのノードを右クリックして、[パラメータの追加]のオプションを選択するか、[追加]のボタンから[パラメータ]を選択します。
-
[レポート - パラメータ]ダイアログでは、以下の値を設定します。
[全般]タブ
- 名前:StoreID
- データタイプ: Integer
- パラメータ入力ダイアログに表示する文字列: 商店番号を選択してください。
[使用できる値]タブでは[クエリから値を取得]を選択します。
- データセット:Stores
- 値: StoreID
- ラベル: StoreID
- [OK]をクリックしてダイアログを閉じ、[レポートエクスプローラ]の[パラメータ]のノードの下にパラメータを追加します。
レポートにデータセットを追加する
- [レポートエクスプローラ]では、データソースノードを右クリックし、[データセットの追加]を選択します。
- [データセット]ダイアログ」では、[全般]のページを選択し、[名前]を「Employees」に変更します。この名前は[レポートエクスプローラ]で、データソースの子ノードとして表示されます。
-
[パラメータ]のページでは、パラメータを追加し、以下のプロパティを設定します。
- [名前]=@StoreID
- [値]=Parameters!StoreID.Value
- このダイアログの[クエリ]ページでは、[指定方法]をStoredProcedureに変更し、クエリのテキストボックスに以下のStoredProcedureクエリを入力します。 (「?」はパラメータを示す)
StoredProcedureクエリ |
コードのコピー
|
EmployeesForStore ?
|
- [データセットの検証]アイコンをクリックし、クエリを検証します。
- [OK]をクリックしてダイアログを閉じます。データセットとクエリフィールドは、[レポートエクスプローラ]のノードとして表示されます。
レポートのレイアウトを作成する
- Visual Studioのツールボックスからレポートのデザイナ面上にTableデータ領域をドラッグし、[ プロパティ] ウィンドウから以下のプロパティを設定します。
プロパティ名 |
値 |
Location |
0in, 0in |
DataSetName |
Employees |
FixedSize |
6.5in, 9in |
- テーブル内をクリックし、左端と上端に列と行のハンドルを表示します。
- 列の上端にあるグレーの列ヘッダをクリックして列を選択します。各列のWidthプロパティを次のように設定します。
列 |
プロパティ名 |
1番目の列 |
2.2in |
2番目の列 |
1.5in |
3番目の列 |
1.05in |
- 3番目の列の上にあるグレーのハンドルを右クリックし、[右に列を挿入]を選択します。
- 4番目の列を選択し、Widthプロパティを「1.75in」に設定します。
|
ヒント: レポートの幅が変更されないように、列を追加する前に、デザイナ面にあるテーブルの列の幅を調整してください。 |
- [レポートエクスプローラ]では、[Employees]データセットから次のフィールドをテーブルの詳細行にドラッグします。
データフィールド |
列名 |
Title |
TableColumn1 |
LastName |
TableColumn2 |
Supervisor |
TableColumn3 |
Department |
TableColumn4 |
- 詳細行の2番目の列にある[LastName]フィールドを選択し、[プロパティ]ウィンドウから、Valueプロパティを「=Fields!LastName.Value & " " & Fields!EmployeeID.Value」に設定します。これは各社員の「名字」と「社員番号」を表示します。
- 詳細行の2番目の列の静的なラベルを選択し、[プロパティ]ウィンドウからValueプロパティを「名字とID」に設定します。
- 詳細行の3番目の列の[Supervisor]フィールドを選択し、[プロパティ]ウィンドウからTextAlignプロパティを「Center」に設定します。
- 詳細行の3番目の列の静的なラベルを選択し、[プロパティ]ウィンドウからValueプロパティを「管理者ID」に設定します。
- ヘッダ行の左端にある行ハンドルをクリックし、[プロパティ]ウィンドウから以下のプロパティを設定します。
プロパティ名 |
値 |
TextAlign |
Center |
FontWeight |
Bold |
BackgroundColor |
DarkSlateBlue |
Color |
White |
- ヘッダ行を選択し、[プロパティ]ウィンドウからBorderStyleプロパティを「Solid」に設定します。
- ヘッダ行の左端にある行ハンドルを右クリックし、[上に行を挿入]を選択します。
- [Shift]キーを押しながら、新しく追加した行の各セルを選択します。
- 選択したセル内を右クリックし、[セルの結合]を選択し、セルを結合します。
- 結合したセルを選択し、「[プロパティ]ウィンドウ」から以下のプロパティを設定します。
プロパティ名 |
値 |
TextAlign |
Center |
FontSize |
14pt |
Value |
="商店番号:" & Parameters!StoreID.Value |
FontWeight |
Bold |
- テーブルの左端にある行ハンドルを右クリックし、[テーブルのフッタ]をクリックしてフッタを削除します。
- 詳細行を選択し、[プロパティ]ウィンドウからBorderStyleプロパティを「Solid」に設定します。
|
メモ : 再帰型階層をページ形式のレポートで設定する場合、[ページ]ダイアログにあるDataSetNameプロパティを「Employees」に設定します。 |
再帰型階層を設定する
- テーブルの左端にある行ハンドルを右クリックし、[グループの編集]を選択して[Table-詳細行のグループ化]を開きます。
- [グループ化の条件]ページにある[式]オプションで「=Fields!EmployeeID.Value」を設定します。
- [親グループ]では[=Fields!Supervisor.Value]を選択します。
- [OK]をクリックしてダイアログを閉じます。
Level関数を使用し、階層を表示する
- 詳細行の1番目の列の「=Fields!Title.Value」セルを選択し、[プロパティ]ウィンドウのPaddingプロパティを展開します。
-
PaddingのLeftプロパティに、「=2 + (Level() * 15) & "pt"」を入力します。
|
メモ: 「2」を設定することにより、パディングの標準の値として常に適用されます。
|
テキストボックスのBackgroundColorプロパティでテーマとLevel関数を使用する
- [レポートエクスプローラ]から[レポート]を選択します。
- [プロパティ]ウィンドウの[Themes]プロパティの横にある<...>をクリックし、[レポート - テーマ]ダイアログを開きます。
- [レポート - テーマ]ダイアログの、テーマの一覧の上にある[開く]アイコンをクリックし、..ActiveReportsNET9\Data\Reels.rdlx-themeを開きます。
- 詳細行の左端の行ハンドルをクリックして、行全体を選択します。
- [プロパティ]ウィンドウからBackgroundColorプロパティを「=Theme.Colors(Level() + 1, 4)」に設定します。
レポートを表示する
- 設計時にレポートを表示するには、プレビュータブをクリックします。
または
関連トピック